#include<stdio.h>
#include<string.h>
#include<stdlib.h> 
void paixu(int number, int j, char *str1, char *str2)	//定义函数进行排序 
{
	char index;						//定义中间存储值index 
	int  i, k;
	for(i=0;i<j;i++)				//讲str2接入str1里 
	{
		str1[number]=str2[i];
		number++;
	}
	for(i=0; i<number-1; i++)		//利用冒泡排序法排序 
	{
		for(k=0; k<number-i-1; k++)
		{
			if(str1[k] > str1[k+1])
			{
				index   = str1[k];
				str1[k] = str1[k+1];
				str1[k+1] = index;
			}
		}
	}
	return; 
}
int main(void)
{
	
	FILE *fp1 = NULL;			//定义文件指针1，来打开文件 
	FILE *fp2 = NULL;			//定义文件指针2，来打开文件 
	FILE *fp3 = NULL;			//定义文件指针3，来打开文件 
	char  number;				 
	int   k=0, j=0;				//定义k，j，来统计文件内部字母数量 
	char  str1[100]={0}, str2[100]={0};	//定义数组来接收文件字母 
	
	if((fp1 = fopen("E:\\a.txt", "r")) == NULL)//打开文件a，若失败程序结束
	{
		printf("打开失败aaa\n");
		exit(0);
	}
	if((fp2 = fopen("E:\\b.txt", "r")) == NULL)//打开文件b，若失败程序结束
	{
		printf("打开失败bbb\n");
		exit(0);
	}
	if((fp3 = fopen("E:\\c.txt", "w+")) == NULL)//打开文件c，若失败程序结束 
	{
		printf("打开失败ccc\n");
		exit(0);
	}
	/*开始接收文件内容*/ 
	while(!feof(fp1))				//接收文件a内容，并统计文件a内的字母数量 
	{	
		str1[k] = fgetc(fp1);
		k++;
	}					 
	while(!feof(fp2))				//接收文件b内容，并统计文件b内的字母数量
	{
		str2[j] = fgetc(fp2);
		j++;
	}
	/*文件排序，字符串传输*/
	paixu(k-1, j-1, str1, str2);			//调用函数，进行数字合并排序 
	if(fputs(str1, fp3) == 0)		//判断是否输入成功 
		printf("成功");
	
	/*关闭文件a，b，c*/ 			
	if(fclose(fp1) != 0)			//判断是否正常关闭程序 
			printf("aaa关闭失败\n");
	if(fclose(fp2) != 0)			//判断是否正常关闭程序
			printf("bbb关闭失败\n");
	if(fclose(fp3) != 0)			//判断是否正常关闭程序
			printf("ccc关闭失败\n");
	return 0;
}